/**
 * 基于 axios 封装请求模块
 */
import axios from 'axios'

// 创建一个axios实例，说白了就是复制了一份axios
// 我们通过这个实例去发请求，把需要配置给这个实例来请求
const request = axios.create({
  baseURL: 'http://api-toutiao-web.itheima.net' // 请求的基本路径
})
// 请求拦截器
request.interceptors.request.use(
  // 任何所有请求会经过这里
  // config 是当前请求相关的配置信息对象
  // config 是可以修改的
  function (config) {
    // 然后就可以在允许请求出去之前定制统一的业务功能处理
    // 例如设置统一的token
    const user = JSON.parse(window.localStorage.getItem('user'))
    // 如果有登录用户信息就统一设置token
    if (user) {
      config.headers.Authorization = `Bearer ${user.token}`
    }
    // 当 return config 之后才会真正的吧请求发送出去
    // return config 被注释或者删除以后请求就会被拦截
    return config
  },
  function (error) {
    return Promise.reject(error)
  }
)

export default request
